package com.pausa.sgdi.controller
{
	import com.pausa.sgdi.model.Model;
	
	import mx.collections.ArrayCollection;
	import mx.rpc.events.FaultEvent;
	import mx.rpc.events.ResultEvent;
	import mx.rpc.remoting.RemoteObject;

	public class CatalogosController
	{
		public const DESTINATION : String = 'catalogoService';
		public function CatalogosController()
		{
		}
		
		public function callFillAllCatalogos():void
		{
			var roZonas : RemoteObject = new RemoteObject();
			roZonas.destination = DESTINATION;
//			remoteObject.source = ;
//			remoteObject.endpoint = ;
			roZonas.addEventListener(ResultEvent.RESULT, onFindAllZonaHandler);
			roZonas.findAllZona();
			
			var roTipoDispositivo : RemoteObject = new RemoteObject();
			roTipoDispositivo.destination = DESTINATION;
			roTipoDispositivo.addEventListener(ResultEvent.RESULT, onFindAllTipoDispositivoHandler);
			roTipoDispositivo.addEventListener(FaultEvent.FAULT, faultHandler);
			roTipoDispositivo.findAllTipoDispositivo();
			
			var roTipoEc : RemoteObject = new RemoteObject();
			roTipoEc.destination = DESTINATION;
			roTipoEc.addEventListener(ResultEvent.RESULT, onTipoECHandler);
			roTipoEc.addEventListener(FaultEvent.FAULT, faultHandler);
			roTipoEc.findAllTipoEmpresa();
			
			var roSituacion : RemoteObject = new RemoteObject();
			roSituacion.destination = DESTINATION;
			roSituacion.addEventListener(ResultEvent.RESULT, onSituacionHandler);
			roSituacion.addEventListener(FaultEvent.FAULT, faultHandler);
			roSituacion.findAllSituacion();
			
			var roPuesto : RemoteObject = new RemoteObject();
			roPuesto.destination = DESTINATION;
			roPuesto.addEventListener(ResultEvent.RESULT, onPuestoHandler);
			roPuesto.addEventListener(FaultEvent.FAULT, faultHandler);
			roPuesto.findAllPuesto();
			
			var roPerfil : RemoteObject =  new RemoteObject();
			roPerfil.destination = DESTINATION;
			roPerfil.addEventListener(ResultEvent.RESULT, onPerfilHandler);
			roPerfil.addEventListener(FaultEvent.FAULT, faultHandler);
			roPerfil.findAllPerfil();
			
			var roTipoID : RemoteObject =  new RemoteObject();
			roTipoID.destination = DESTINATION;
			roTipoID.addEventListener(ResultEvent.RESULT, onTipoIDHandler);
			roTipoID.addEventListener(FaultEvent.FAULT, faultHandler);
			roTipoID.findAllTipoId();
			
			var roTecnico : RemoteObject = new RemoteObject();
			roTecnico.destination = DESTINATION;
			roTecnico.addEventListener(ResultEvent.RESULT, onTecnicoHandler);
			roTecnico.addEventListener(FaultEvent.FAULT,faultHandler);
			roTecnico.findAllTecnico();
			
			var roEmpresas : RemoteObject = new RemoteObject();
			roEmpresas.destination = DESTINATION;
			roEmpresas.addEventListener(ResultEvent.RESULT, onEmpresasHandler);
			roEmpresas.addEventListener(FaultEvent.FAULT, faultHandler);
			roEmpresas.findAllEmpresa();
		}
		
		public function onFindAllZonaHandler(event : ResultEvent):void
		{
			Model.getInstance().zonas = ArrayCollection(event.result);
		}
		
		public function onFindAllTipoDispositivoHandler(event : ResultEvent):void
		{
			Model.getInstance().tipoDispositivo = ArrayCollection(event.result);
		}
		
		public function onTipoECHandler(event : ResultEvent):void
		{
			Model.getInstance().tiposEmpresa = ArrayCollection(event.result);
		}
		
		public function onSituacionHandler(event : ResultEvent):void
		{
			Model.getInstance().situaciones = ArrayCollection(event.result);
		}
		
		public function onPuestoHandler(event : ResultEvent):void
		{
			Model.getInstance().puestos = ArrayCollection(event.result);
		}
		
		public function onPerfilHandler(event : ResultEvent):void
		{
			Model.getInstance().perfiles = ArrayCollection(event.result);
		}
		
		public function onTipoIDHandler(event : ResultEvent):void
		{
			Model.getInstance().tiposID = ArrayCollection(event.result);
		}
		
		public function onTecnicoHandler(event : ResultEvent):void
		{
			Model.getInstance().tecnicos = ArrayCollection(event.result);
		}
		
		public function onEmpresasHandler(event :  ResultEvent):void
		{
			Model.getInstance().empresas = ArrayCollection(event.result);
		}
		
		public function faultHandler(event : FaultEvent):void {
			trace('Fault :' +  event.fault.rootCause + '\n' + event.fault.faultString +'\n' + event.fault.message);               
		}
	}
}